/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  ZOOMFOCUS模块中驱动和应用层对外接口都需要引用的定义
  Function List:
      History:
    <wumj -- 2015-01-20>  创建 
    <wumj -- 2015-06-11>  修改 
*******************************************************************************/
#ifndef ZOOMFOCUS_COMMON_H 
#define ZOOMFOCUS_COMMON_H  

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
                                 Includes                                  
==============================================================================*/ 

/*=============================================================================
                               Macro Definition
==============================================================================*/
                        
/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/  

/* 变焦聚焦控制参数结构体 */ 
typedef struct
{
    int step;          /* 步数, 取0表示停止 */
    int speed;         /* 速度，取值范围通过镜头能力值获取，取0时表示使用底层曲线速度 */
    int dir;           /* 方向，取值范围  0: 变焦焦距由小变大或聚焦由近到远
                                          1: 变焦焦距由大变小或聚焦由远到近 */
    int ifBlock;       /* 是否为阻塞式控制方式， 1:阻塞  0:非阻塞 */
    int hold;          /* 是否维持电平状态 */
    int holdOn;        /* hold有效时的通电时间，单位us */
    int holdOff;       /* hold有效时的断电时间，单位us */
    int reserved[5];
}ZOOMFOCUS_setParam_t;


/* 变焦聚焦镜头能力 */
typedef struct
{
    int allSteps;      /* 总步长 电机决定 */
    int minSpeed;      /* 最小速度 */
    int maxSpeed;      /* 最大速度 */
    char lenName[32];  /* 镜头类型名 */
    int enHold;        /* 是否使能hold */
    int holdOn;        /* hold有效时的通电时间，单位us  */
    int holdOff;       /* hold有效时的断电时间，单位us */
    int reserved[5];
}ZOOMFOCUS_caps_t;


/* 同步对焦参数 */
typedef struct
{
    int zoomTarget;      /* 变焦电机目标位置 */
    int zoomSpeed;       /* 变焦电机移动速度 */
    int *pZoom;          /* zoom分段点位 */
    int *pFocus;         /* focus分段点位 */
    int pointNum;        /* 点数*/
    int reserved[16];
}ZOOMFOCUS_syncFocus_t;


/*=============================================================================
                             extern  Variables                                  
==============================================================================*/

/*=============================================================================
                             Function Definition                                  
==============================================================================*/ 

#ifdef __cplusplus
}
#endif
#endif // ZOOMFOCUS_COMMON_H 



